package com.weiss.jpro.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.weiss.jpro.entity.Voucher;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 虎哥
 * @since 2021-12-22
 */
public interface VoucherMapper extends BaseMapper<Voucher> {
    // 在 MyBatis 和 MyBatis-Plus 中，@Param 注解用于为 SQL 映射文件中的参数提供别名。它可以帮助你在 SQL 查询中明确指定参数的名称，从而使 SQL 查询更加清晰和易于维护。
    //  作用
    //  为参数提供别名：在 SQL 查询中，你可以通过别名来引用方法参数，而不是通过位置（如 #{param1}、#{param2}）。
    //  支持多个参数：当方法有多个参数时，@Param 注解可以明确指定每个参数的名称，避免混淆。
    //  提高可读性：通过使用别名，SQL 查询更加直观，便于理解和维护。
    //  示例
    //  假设你有一个 VoucherMapper 接口，其中定义了一个方法 queryVoucherOfShop，它根据 shopId 查询优惠券列表。使用 @Param 注解可以为 shopId 参数提供一个别名。
    List<Voucher> queryVoucherOfShop(@Param("shopId") Long shopId); // 通过xml形式查询数据库
}